/**
 * Created by Amaris on 2016/12/6.
 */


var util = require('../utils/util.js');
var uuid = require('node-uuid');

var companyClass = require('../class/company.js');

module.exports = {

    create: function (params, cb,addressbook) {
        var models = util.models;
        if (!models) {
            var err = new Error();
            err.status = 500;
            err.message = '数据库连接失败';
            cb(err, null);
            return;
        }
        params.enable = '1';
        var company = new companyClass();

        var checkResult = company.checkParams(
            [
                'name',
                'createUid'
            ],
            params);
        if (checkResult) {
            cb( util.getErrorRes('400', checkResult), null);
            return;
        } else {
            company.init(params);
        }
        models.company.find({"name":company.name}).exec(function (err, data){
            if (err || !data) {
                console.error(err);
                cb(util.getSysError());
            }else{
                if(data.length >0 ){
                    cb(null, util.getSuccessRes(data[0]));
                    return;
                }
                models.company.create(company.getParams(), function (err, data) {
                    if (err || !data) {
                        console.error(err);
                        cb(util.getSysError());
                    }else{
                        cb(null, util.getSuccessRes(data),addressbook);
                    }
                });
            }
        })

    },

    //getInfo: function (params, cb) {
    //    var models = util.models;
    //
    //    if (!models) {
    //        var err = new Error();
    //        err.status = 500;
    //        err.message = '数据库连接失败';
    //        cb(err, null);
    //        return;
    //    }
    //
    //    var seller = new sellerClass();
    //
    //    var checkResult = seller.checkParams(['rowId'], params);
    //    if (checkResult) {
    //        cb( util.getErrorRes('400', checkResult),null);
    //        return;
    //    } else {
    //        seller.init(params);
    //    }
    //
    //    models.seller.findOne(seller.getParams(), function (err, data) {
    //        if (err || !data) {
    //            var err = new Error();
    //            err.status = 500;
    //            err.message = '系统错误';
    //            cb(err, null);
    //            return;
    //        }
    //
    //        cb(null, util.getSuccessRes(data));
    //
    //    });
    //},


    //获取公司列表
    getList: function (params, cb) {
        var models = util.models;
        if (!models) {
            var err = new Error();
            err.status = 500;
            err.message = '数据库连接失败';
            cb(err, null);
            return;
        }

        var company = new companyClass();

        if (params.queryStr != '') {
            models.company.find().populate("addressbooks",{where:{enable:'1',or:[{name:{ 'like': '%'+params.queryStr+'%' }},{industry:{ 'like': '%'+params.queryStr+'%' }}]}}).exec(function (err, data){
                if (err || !data) {
                    var err = new Error();
                    err.status = 500;
                    err.message = '系统错误';
                    cb(err, null);
                    return;
                }
                cb(null, util.getSuccessRes(data));
            });

            return;
        } else {
            company.init(params);
            models.company.find(company.getParams()).populate("addressbooks",{where:{enable:'1'}}).exec(function (err, data){
                if (err || !data) {
                    var err = new Error();
                    err.status = 500;
                    err.message = '系统错误';
                    cb(err, null);
                    return;
                }
                cb(null, util.getSuccessRes(data));
            });

        }


    },
    //按名称获取公司列表
    getListByName: function (params, cb) {
        var models = util.models;
        if (!models) {
            var err = new Error();
            err.status = 500;
            err.message = '数据库连接失败';
            cb(err, null);
            return;
        }

        var company = new companyClass();
        if (params.query != '') {
            models.company.find({name:{ 'like': '%'+params.query+'%' }}).sort('createdAt DESC').limit(5).exec(function (err, data){
                if (err || !data) {
                    var err = new Error();
                    err.status = 500;
                    err.message = '系统错误';
                    cb(err, null);
                    return;
                }
                cb(null, util.getSuccessRes(data));
            });

        }else{
            cb(null, null);
        }
    }

};



